package br.com.controleVendas.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.ForeignKey;

@SuppressWarnings("deprecation")
@Entity
@Table(name = "venda")
public class Venda extends GenericEntity<Venda> {
	private static final long serialVersionUID = 7139677152100665932L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "cd_id")
	private Long cdId;

	@Column(name = "nr_venda")
	private Long nrVenda;

	@ManyToOne
	@JoinColumn(name = "fk_cliente", referencedColumnName = "cd_id")
	@ForeignKey(name = "fk_venda_cliente")
	private Cliente cliente;

	@Column(name = "nr_tipo_pagamento")
	private Short nrTipoPagamento;

	@Column(name = "dt_venda")
	private Date dtVenda;

	@Column(name = "dt_fechamento")
	private Date dtFechamento;

	@Column(name = "fl_status")
	private Short flStatus;

	@Column(name = "qtd_parcela")
	private Integer qtdParcela;

	@Column(name = "vl_entrada")
	private Double vlEntrada;

	@Override
	public String getNmEntity() {
		return "Venda";
	}

	public Long getCdId() {
		return cdId;
	}

	public void setCdId(Long cdId) {
		this.cdId = cdId;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public Short getNrTipoPagamento() {
		return nrTipoPagamento;
	}

	public void setNrTipoPagamento(Short nrTipoPagamento) {
		this.nrTipoPagamento = nrTipoPagamento;
	}

	public Date getDtVenda() {
		return dtVenda;
	}

	public void setDtVenda(Date dtVenda) {
		this.dtVenda = dtVenda;
	}

	public Short getFlStatus() {
		return flStatus;
	}

	public void setFlStatus(Short flStatus) {
		this.flStatus = flStatus;
	}

	public Integer getQtdParcela() {
		return qtdParcela;
	}

	public void setQtdParcela(Integer qtdParcela) {
		this.qtdParcela = qtdParcela;
	}

	public Date getDtFechamento() {
		return dtFechamento;
	}

	public void setDtFechamento(Date dtFechamento) {
		this.dtFechamento = dtFechamento;
	}

	public Long getNrVenda() {
		return nrVenda;
	}

	public void setNrVenda(Long nrVenda) {
		this.nrVenda = nrVenda;
	}

	public Double getVlEntrada() {
		return vlEntrada;
	}

	public void setVlEntrada(Double vlEntrada) {
		this.vlEntrada = vlEntrada;
	}

}
